/**
 * 类和对象
 * 什么是类？
 * 什么是对象？
 * 对象的产生依赖类
 * 类：一种类型，程序员定义这种类型
 *
 * 1.1面向对象
 * Java是一门面向对象的语言（OOP），面向对象的世界里，一切皆为对象。面向对象是一种解决问题的思想，靠对象之间的交互完成一件事
 * 洗衣服：面向对象来处理，就不会关心洗衣服的过程，是通过对象之间的交互来完成的
 *
 * 2类定义和使用
 *         抽象
 * 对象    ====》  类
 * 对洗衣机对象（实体）进行抽象（对一个复杂事务的重新认知）
 * 类是用来对一个对象（实体）进行描述的，描述该对象有哪些属性，哪些功能
 *
 * 2.2类的定义格式
 * 定义一个类需要有关键字class
 * class ClassName{ //类名是大驼峰形式
 *     file; //成员变量  属性
 *     method; //成员方法 方法
 * }
 *
 * 注意：
 * 1.类名采用大驼峰定义
 * 2.成员前写法同意为public
 * 3.此处写的方法不带static
 * 4.一个文件当中只定义一个类
 * 5.main方法所在的类要使用public修饰
 * 6.public修饰的类的名字要和文件名一致
 *
 * 3类的实例化
 * 3.1什么是实例化
 * 定义一个类，就相当于在计算机中定义了一种新的类型，用类创建对象的过程，就是类的实例化
 */
public class Test2 {
    public static void main(String[] args) {
        Student student = new Student(); //通过new 实例化 对象
        student.name = "赵子锐";
        student.age = 18;
        student.score = 100.0;
        System.out.println(student.name);
        System.out.println(student.age);
        System.out.println(student.score);

        PetDog dog = new PetDog();
        dog.name = "多金";
        dog.color = "黄色";
        dog.bark();
        //new关键字用于创建一个对象的实例
        //使用.来访问对象中的属性和方法
        //同一个类可以创建多个实例
        //对象是引用类型，存储在栈上，其具体的name，color等存储在栈上，对象存储栈上的地址
    }
    /**
     * 类只是一个模型一样的东西，用来对一个实体进行描述
     * 类是一种自定义的类型
     * 一个类可以实例化出很多对象，实例化的对象，占用实际的物理空间
     * 类实例化(new)出的对象就像是现实中使用建筑设计图建造房子，类就相当于是设计图，只设计出需要什么东西，并没有实体的建筑存在，只有实例化出的对象，才能占用物理空间
     */


    /**
     * this引用：
     * this引用指向当前对象(成员方法运行时调用该成员方法的对象)，在成员方法中所有完成成员变量的操作，都是通过该引用去访问
     */
}

